package com.todo.content.infrastructure.entity.domain;

import com.todo.common.common.enums.SourceEnum;
import com.todo.content.common.enums.ContentRelationTypeEnum;
import com.todo.content.common.enums.ContentStatusEnum;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @author zhangwenxiang
 * @date 2024/4/6 21:31
 * @description
 */
@Data
public class ContentDetailDO {

    private Long id;
    /**
     * 用户id
     */
    private Long userId;
    /**
     * 内容详情
     */
    private ContentInfo contentInfo;
    /**
     * 内容关联列表
     */
    private List<ContentRelation> contentRelationList;
    /**
     * 是否删除
     */
    private Integer isDelete;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;

    @Data
    public static class ContentInfo{
        /**
         * 内容标题
         */
        private String title;
        /**
         * 内容信息
         */
        private String content;
        /**
         * 主图
         */
        private String mainImg;
        /**
         * 分类code
         */
        private String classifyCode;
        /**
         * 当前状态
         * {@link ContentStatusEnum}
         */
        private Integer status;
        /**
         * 扩展信息
         */
        private String extra;
        /**
         * 是否私有
         */
        private Integer isPrivate;
        /**
         * 是否允许评论
         */
        private Integer allowComment;
        /**
         * 浏览数
         */
        private Integer seeCount;
        /**
         * 点赞数
         */
        private Integer likeCount;
        /**
         * 评论数
         */
        private Integer commentCount;
        /**
         * 收藏量
         */
        private Integer collectCount;
        /**
         * 来源
         * {@link SourceEnum}
         */
        private Integer source;
    }

    @Data
    public static class ContentRelation{
        /**
         * 关联类型：各类业务数据
         * {@link ContentRelationTypeEnum}
         */
        private Integer relationType;
        /**
         * 关联id
         */
        private Long relationId;
        /**
         * 关联名称
         */
        private String relationName;
        /**
         * 关联图片
         */
        private String relationImg;
        /**
         * 跳转url
         */
        private String jumpUrl;
        /**
         * 是否站外
         */
        private Integer isOutside;
        /**
         * 排序
         */
        private Integer sort;
    }
}
